System Design of Job scheduler in Golang

Last Edited
Tags

Background:

Container tech in recent years has been used a lot in web development. I am very interested in engineering some useful applications that works in docker and Kubernetes environment. In previous posts, I wrote down my study of K8S system. In this post, I am going to continue my journey and build tools with GoLang. This post will be more formal, similar to a system design document.

Functional requirements:

Design a microservices system works as periodically crawling job information. Then send out email notification based on user preference. It should be in golang, docker, and k8s (potentially) for studying purpose.

Design choice:



Overall Design

Detailed Design

UI and Email

Better Design (* may or may not implement)

While in the progress of implementation (nearly finish my previous design), I thought there’s a design that has better storage management and more efficient API response on the UI. Here’s a brief overview.


* Notes for EC2 Setup


Code

https://github.com/HarrisonLL/Distributed_Job_Crawler